#pragma once

#ifndef CELULA_H
#define CELULA_H

#include <string>
#include <cstdlib>
#include <sstream>
#include <vector>
#include <iostream>
#include "Castelo.h"
#include "Soldado.h"
#include "Mina.h"
#include "Pedreira.h"
#include "Floresta.h"

using namespace std;

class Celula
{
	int visivel;	//0=nao visivel, 1=visivel
	int tipo;		//tipo celula 0=vazia, 1=unidade, 2=recurso, 3=edificio
					//tipo de objecto na celula, 0=vazia, 1=castelo, 2=estabulo, 3=quartel, 4=quinta
					// 5=campones, 6=camponesCav, 7=cavaleiro, 8=feiticeiro, 9=soldado
					// 10= mina, 11=floresta, 12=pedreira

	Castelo *cast;		//so pode haver 1 castelo por celula
	Mina *mi;
	Floresta *flo;
	Pedreira *ped;
	vector <Soldado*> sold;	//podem haver varios soldados na mesma celula
	

public:
	Celula(void);
	Celula(int t);
	~Celula(void);

	int getTipo();
	void setTipo(int t);
	void addSoldado(Soldado *sol);
	void addCastelo(Castelo cas);
	void addMina(Mina min);
	void addFloresta(Floresta flor);
	void addPedreira(Pedreira pedr);

	int getCastID();
	int getCastSaude();
};

#endif